package com.ms.utils;

import com.ms.entity.Manager;

/**
 * 管理员上下文工具类（基于ThreadLocal）
 */
public class ManagerContext {

    private static final ThreadLocal<Manager> MANAGER_CONTEXT = new ThreadLocal<>();

    /**
     * 设置当前管理员
     */
    public static void setManager(Manager manager) {
        MANAGER_CONTEXT.set(manager);
    }

    /**
     * 获取当前管理员
     */
    public static Manager getManager() {
        return MANAGER_CONTEXT.get();
    }

    /**
     * 获取当前管理员ID
     */
    public static Integer getManagerId() {
        Manager manager = getManager();
        return manager != null ? manager.getMaId() : null;
    }

    /**
     * 清除上下文
     */
    public static void remove() {
        MANAGER_CONTEXT.remove();
    }

    /**
     * 检查是否是主管理员
     */
    public static boolean isSuperAdmin() {
        Manager manager = getManager();
        return manager != null && Boolean.TRUE.equals(manager.getMaIsMain());
    }
}